/*********************************
 * Themes, rules, and i18n support
 * Locale: Chinese; 中文
 *********************************/
define(["jquery","core","jquery.validator.all"],function($,core)
{
	(function ($) {
	    /* Global configuration
	     */
	    $.validator.config({
	    	timely:false,
	        stopOnError: true,
	        ignore: ":hidden",
	        theme: 'defaultTheme',
	        msgMaker: function(opt)
	        {
	        	core.ui.simpleDialog(opt.msg);
		        return "";
		    },
	        defaultMsg: "{0}格式不正确",
	        loadingMsg: "正在验证...",
	        // Custom rules
	        rules: {
	            digits: [/^\d*$/, "请输入数字"]
	            ,letters: [/^[a-z]*$/i, "{0}只能输入字母"]
	            ,tel: [/^(?:(?:0\d{2,3}[- ]?[1-9]\d{6,7})|(?:[48]00[- ]?[1-9]\d{6}))$/, "电话格式不正确"]
	            ,mobile: [/^1[3-9]\d{9}$/, "手机号格式不正确"]
	            ,email: [/^(?:[a-z0-9]+[_\-+.]?)*[a-z0-9]+@(?:([a-z0-9]+-?)*[a-z0-9]+.)+([a-z]{2,})+$/i, "邮箱格式不正确"]
	            ,qq: [/^[1-9]\d{4,}$/, "QQ号格式不正确"]
	            ,date: [/^\d{4}-\d{1,2}-\d{1,2}$/, "请输入正确的日期,例:yyyy-mm-dd"]
	            ,time: [/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/, "请输入正确的时间,例:14:30或14:30:00"]
	            ,ID_card: [/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[A-Z])$/, "请输入正确的身份证号码"]
	            ,url: [/^(https?|ftp):\/\/[^\s]*$/i, "网址格式不正确"]
	            ,postcode: [/^[1-9]\d{5}$/, "邮政编码格式不正确"]
	            ,chinese: [/^[\u0391-\uFFE5]+$/, "请输入中文"]
	            ,username: [/^\w{3,12}$/, "请输入3-12位数字、字母、下划线"]
	            ,password: [/^[0-9a-zA-Z]{6,16}$/, "密码由6-16位数字、字母组成"]
	            ,accept: function (element, params){
	                if (!params) return true;
	                var ext = params[0];
	                return (ext === '*') ||
	                       (new RegExp(".(?:" + (ext || "png|jpg|jpeg|gif") + ")$", "i")).test(element.value) ||
	                       this.renderMsg("只接受{1}后缀", ext.replace('|', ','));
	            }
	            
	        }
	    });
	
	    /* Default error messages
	     */
	    $.validator.config({
	        messages: {
	            required: "{0}不能为空",
	            remote: "{0}已被使用",
	            integer: {
	                '*': "请输入整数",
	                '+': "请输入正整数",
	                '+0': "请输入正整数或0",
	                '-': "请输入负整数",
	                '-0': "请输入负整数或0"
	            },
	            match: {
	                eq: "{0}与{1}不一致",
	                lt: "{0}必须小于{1}",
	                gt: "{0}必须大于{1}",
	                lte: "{0}必须小于或等于{1}",
	                gte: "{0}必须大于或等于{1}"
	            },
	            range: {
	                rg: "请输入{1}到{2}的数",
	                gt: "请输入大于或等于{1}的数",
	                lt: "请输入小于或等于{1}的数"
	            },
	            checked: {
	                eq: "请选择{1}项",
	                rg: "请选择{1}到{2}项",
	                gt: "请至少选择{1}项",
	                lt: "请最多选择{1}项"
	            },
	            length: {
	                eq: "请输入{1}个字符",
	                rg: "请输入{1}到{2}个字符",
	                gt: "请输入大于{1}个字符",
	                lt: "请输入小于{1}个字符",
	                eq_2: "",
	                rg_2: "",
	                gt_2: "",
	                lt_2: ""
	            }
	        }
	    });
	    
	    /* Themes
	     */
	    $.validator.setTheme
	    ({
	     	"defaultTheme":
	        {
	            msgShow: function($msgbox, type)
	            {
	            	var input=$msgbox.parent();
	            	//input.removeClass("has-success");
	            	input.addClass("has-error");
	            	$msgbox.hide();
	            	return false;
	            },
	            msgHide:function($msgbox, type)
	            {
	            	var input=$msgbox.parent();
	            	//input.addClass("has-success");
	           		input.removeClass("has-error");
	            }
	        }
	    });
	})(jQuery);
});